package com.suntianci.stock.pojo.domain;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @ClassName UserSidebarPermissionTreeDomain
 * @Author 孙天赐
 * @Date 2025/1/12 8:44
 * @Description TODO: 权限树（不包含按钮权限）领域类
 */
@Data
@ApiModel(description = "权限树（不包含按钮权限）领域类")
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PermissionDomain {

    /**
     * 权限id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 菜单权限名称
     */
    private String title;

    /**
     * 菜单图标（侧边导航栏图标）
     */
    private String icon;

    /**
     * 访问地址rul
     */
    private String path;

    /**
     * 权限名称对应前端vue组件名称
     */
    private String name;

    /**
     * 子级菜单权限集合
     */
    private List<PermissionDomain> children;
}
